from django.contrib import admin
from rankings.models import Categoria, Pareja
from django.utils.translation import ugettext_lazy as _

class CategoriaFilter(admin.SimpleListFilter):
    title = _('Categorias')
    parameter_name = 'categoria'

    def lookups(self, request, model_admin):
        categorias_seleccionadas = Categoria.objects.seleccionados()
        categoria_lookup_list = []
        # Opcion de filtrar por parejas sin asignar grupo.
        categoria_lookup_list.append(('-1',_('Sin grupo')))

        for categoria in categorias_seleccionadas:
            categoria_lookup = (categoria.id, _(categoria.nombre))
            categoria_lookup_list.append(categoria_lookup)
        return categoria_lookup_list

    def queryset(self, request, queryset):
        parejas = None
        value = self.value()
        parejas_sin_grupo = Pareja.objects.filter(grupo__isnull=True)
        if value == None :
            parejas = Pareja.objects.seleccionados() | parejas_sin_grupo
        elif value == '-1':
            parejas = parejas_sin_grupo
        else:
            parejas = queryset.filter(grupo__categoria=value)
        return parejas
